from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64

# 加密密码
def encrypt_password(password):
    key = b'\x8e%\x97{\xcc<=\xba\xe2\xce\xe1\x8f\x85\xdf3\x91'
    # 创建AES加密器实例
    cipher = AES.new(key, AES.MODE_CBC)
    # 对密码进行填充并加密
    ct_bytes = cipher.encrypt(pad(password.encode('utf-8'), AES.block_size))
    # 获取加密使用的初始向量
    iv = cipher.iv
    # 将初始向量和加密后的密码拼接后进行base64编码返回
    return base64.b64encode(iv + ct_bytes).decode('utf-8')

# 解密密码
def decrypt_password(encrypted_password):
    key = b'\x8e%\x97{\xcc<=\xba\xe2\xce\xe1\x8f\x85\xdf3\x91'
    # 对加密后的密码进行base64解码
    encrypted_password = base64.b64decode(encrypted_password)
    # 提取初始向量
    iv = encrypted_password[:16]
    # 提取加密后的密码
    ct_bytes = encrypted_password[16:]
    # 创建AES解密器实例
    cipher = AES.new(key, AES.MODE_CBC, iv)
    # 解密并去除填充
    pt = unpad(cipher.decrypt(ct_bytes), AES.block_size)
    # 返回解密后的密码
    return pt.decode('utf-8')